import { useState, useEffect } from 'react';
import { Routes, Route, useLocation } from 'react-router-dom';
import Layout from '@/components/Layout';

// 直接导入组件，不使用懒加载，避免类型错误
import Home from '@/pages/Home/index'; // 首页
import Chat from '@/pages/Chat/index'; // 聊天
import AIPhotoAlbum from '@/pages/AIPhotoAlbum/AIPhotoAlbum'; // 相册
import ForgetPassword from '@/pages/ForgetPassword/ForgetPassword'; // 忘记密码
import SetPassWord from '@/pages/SetPassWord/SetPassWord'; // 设置密码
import Subscriptions from '@/pages/Subscriptions/subscriptions'; // 成为会员
import DocumentViewer from '@/pages/DocumentViewer/DocumentViewer'; // 文档
import CreatAi from '@/pages/CreatAi/index'; // 创建AI
import PayMoney from '@/pages/PayMoney/PayMoney'; // 支付页面
import GenerateImage from '@/pages/GenerateImage'; //创建图片的页面
import Collection from '@/pages/Collection'; //收藏页面
import Settings from '@/pages/Settings/index'; //设置页面
import BuyToken from '@/pages/BuyToken/index'; //购买代币

// Google登录处理
import { useGoogleLoginCallback } from '@/hooks/useGoogleLoginCallback';

// 路由定义
const AppRoutes = () => {
  const location = useLocation();

  // 处理Google登录回调
  const { processTokenFromUrl } = useGoogleLoginCallback();

  // 检测URL中是否包含token参数
  useEffect(() => {
    // 从URL哈希或查询参数中获取token
    const hashParams = new URLSearchParams(window.location.hash.substring(2)); // 移除开头的 #/
    const searchParams = new URLSearchParams(location.search);

    const token = hashParams.get('token') || searchParams.get('token');
    
    if (token) {
      // console.log('Route detected token in URL, processing...');
      processTokenFromUrl();
    }
  }, [location, processTokenFromUrl]);

  return (
    <Routes>
      <Route path="/" element={<Layout />}>
        <Route index element={<Home />} /> {/* 首页 */}
        <Route path="conversation" element={<Chat />} /> {/* 聊天 */}
        <Route path="ai-companion/:id/album" element={<AIPhotoAlbum />} /> {/* 相册 */}
        <Route path="forget-password" element={<ForgetPassword />} /> {/* 忘记密码 */}
        <Route path="setPassWord" element={<SetPassWord />} /> {/* 设置密码 */}
        <Route path="subscriptions" element={<Subscriptions />} /> {/* 成为会员 */}
        <Route path="create-character" element={<CreatAi />} /> {/* 创建AI */}
        <Route path="PayMoney" element={<PayMoney />} /> {/* 支付页面 */}
        <Route path="collections" element={<GenerateImage />} />{/* 图片 食品页面 */}
        <Route path='collection' element={<Collection />} />{/* 收藏页面（图片视频 集合页的二级页面） */}
        <Route path='collection/:username' element={<Collection />} />{/* 收藏页面详情（带用户名参数） */}
        <Route path='settings' element={<Settings />} />{/* 设置页面 */}
        <Route path='buygems' element={<BuyToken />} />{/* 购买代币 */}
      </Route>
      <Route path="document/:type" element={<DocumentViewer />} /> {/* 文档 */}
    </Routes>
  );
};

export default AppRoutes; 